const User = require('../models/User');
const bcrypt = require('bcryptjs');

// 获取用户信息
exports.getUser = async (req, res) => {
    try {
        const user = await User.findById(req.params.id);
        if (!user) {
            return res.status(404).json({ message: '没有找到用户，你是不是搞错了' });
        }
        res.json(user);
    } catch (err) {
        res.status(500).json({ message: '服务有问题', error: err });
    }
};

// 创建新用户
exports.createUser = async (req, res) => {
    const { name, email, password } = req.body;
    try {
        const userExists = await User.findOne({ email });
        if (userExists) {
            return res.status(400).json({ message: '这个用户已经存在，不能创建了' });
        }

        const hashedPassword = await bcrypt.hash(password, 10);
        const newUser = new User({
            name,
            email,
            password: hashedPassword
        });

        await newUser.save();
        res.status(201).json({ message: '成功创建用户' });
    } catch (err) {
        res.status(500).json({ message: '服务错误', error: err });
    }
};

// 更新用户信息
exports.updateUser = async (req, res) => {
    const { name, email } = req.body;
    try {
        const user = await User.findById(req.params.id);
        if (!user) {
            return res.status(404).json({ message: '没有找到用户' });
        }

        user.name = name || user.name;
        user.email = email || user.email;

        await user.save();
        res.json({ message: '用户成功修改' });
    } catch (err) {
        res.status(500).json({ message: '服务错误', error: err });
    }
};

// 删除用户
exports.deleteUser = async (req, res) => {
    try {
        const user = await User.findById(req.params.id);
        if (!user) {
            return res.status(404).json({ message: '没找到用户' });
        }

        await user.remove();
        res.json({ message: '删除用户成功' });
    } catch (err) {
        res.status(500).json({ message: '服务错误', error: err });
    }
};
